Authentication is the process of validating a set of credentials that are provided by a party (e.g., a natural person, a program running on a computer system, or other automaton) to a transaction or on behalf of such a party. Authentication is accomplished by verifying, through a challenge/response operation using various authentication protocols, one or more of: something a party knows; something a party possesses; some characteristic about the party; or having one or more other authenticated parties vouch for the party being authenticated. For example, verification of something that a party knows may be accomplished through a shared secret, such as a party's password, or through something that is known only to a particular party, such as a party's cryptographic key. Verification of something that a party possesses may employ a smartcard or other form of hardware token. Verification of a human party characteristic might employ a biometric input such as a fingerprint or retinal map.
The role of the parties to a transaction may be characterized as user and service provider. The service provider delivers to the user via computer systems and networks some form or combination of information, information access, or access to resources. The service provider may also or instead perform some other function or service for or on behalf of the user.